home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus Special 23
/
AMIGAplus Sonderheft 23 (2000)(Falke)(DE)[!].iso
/
Updates
/
AddOns
/
WormWars
/
Source
/
same.h
< prev
next >
Wrap
Text File
|
1999-11-08
|
14KB
|
457 lines
/* $Filename: WormWars/Source/same.h $
* $VER: WormWars 4.1 (6.6.99) $
* $Description: Header file for Worm Wars 4.1 $
*
* © Copyright 1999 James R. Jacobs.
SAME ON EACH PLATFORM -----------------------------------------------------
miscellaneous */
#define CAUSEWAIT 80
#define CHAMPION 1000
#define DEFAULTLEVELS 5
#define ENDXPIXEL ((STARTXPIXEL + SQUAREX * (FIELDX + 1)) - 1)
#define ENDYPIXEL ((STARTYPIXEL + SQUAREY * (FIELDY + 1)) - 1)
#define FIELDX 52 // in squares
#define FIELDY 38 // in squares
#define HISCORES 4
#define ILLEGAL ((APTR) 0xA9A9) // debugging value
#define LIFEMODULO 1000
#define MAXLEVELS 30 // 2K per level. <=99!
#define NAMELENGTH 22 // 0..21 are TEXT, 22 is NULL
#define NUMKEYS 29
#define PATIENCE 20
#define SAYLIMIT ((ENDXPIXEL - STARTXPIXEL) / FONTX)
#define VERSION "$VER: Worm Wars 4.1 (6.6.99) $"
// samples
#define FXKILLERFIRE 0
#define FXPROTECTORBORN 1
#define FXTIMEBOMBTICK 2
#define FXGETGROWER 3
#define FXMISSILEACTIVE 4
#define FXFILEABOUT 5
#define FXGETPOWERUP 6
#define FXUSETELEPORT 7
#define FXWORMDEATH 8
#define FXGETAMMO 9
#define FXEXPLODE 10
#define FXKILLERBORN 11
#define FXORBBORN 12
#define FXPAIN 13
#define FXSHOOT 14
#define FXTITLESCREEN 15
#define FXVICTORY 16
#define FXFILENEW 17
#define FXFILEOPEN 18
#define FXFILESAVE 19
#define FXBOMBBLAST 20
#define FXDEFEAT 21
#define FXENDOFLEVEL 22
#define FXCLICK 23
#define FXUSEARMOUR 24
#define FXGETOBJECT 25
#define FXTIMEALERT 26
#define FXORBSPLIT 27
#define FXORBDEATH 28
#define FXFILESAVEAS 29
#define FXFX 30
#define FXGETNITRO 31
#define FXJUMP 32
#define FX_C 33
#define FX_O 34
#define FX_M 35
#define FX_P 36
#define FX_L 37
#define FX_E 38
#define FX_T 39
#define FXHISCORE 40
#define FXTHUD 41
#define FXKILLERDEATH 42
#define FXGETSKULL 43
#define FXUSETONGUE 44
#define SAMPLES 44
#define FXSTAMPED FXBOMBBLAST
#define FXUSEPROTECTOR FXPROTECTORBORN
// frequencies
#define KILLERFIREFREQ 10
#define KILLERFREQSTART 120
#define KILLERFREQMOD 5
#define KILLERFREQEND 20
#define ORBFREQSTART 220
#define ORBFREQMOD 10
#define ORBFREQEND 20
#define SLIMEFREQSTART 200
#define SLIMEFREQMOD 30
#define SLIMEFREQEND 50
#define SLIMEGROWFREQSTART 120
#define SLIMEGROWFREQMOD 15
#define SLIMEGROWFREQEND 20
#define TELFREQ 240
// population limits
#define KILLERS 7 // <=ORBS+1!
#define ORBS 6
#define PROTECTORS 2 // <=4!
#define TIMEBOMBS 3
// key types
#define MOVE 0 // not AMMO, TRAINER, ONEHUMAN
#define TRAINER 2 // not MOVE, AMMO, ONEHUMAN
#define ONEHUMAN 3 // not MOVE, AMMO, TRAINER
// speeds
#define VERYFAST 1
#define FAST 2
#define NORMAL 4
#define SLOW 8
#define VERYSLOW 16 // must be non-0
#define FRAGSPEED NORMAL
#define FRAGINCLEVELS 1 // must be non-0
#define ORBSPEED SLOW
#define ORBINCLEVELS 2 // must be non-0
#define KILLERSPEED SLOW
#define KILLERINCLEVELS 2 // must be non-0
#define TIMEBOMBSPEED 4
#define FASTESTLEVEL 10
#define MISSILESPEED FAST
/* The constant NORMAL is used for several purposes:
a) as a speed (therefore must not be VERYFAST, FAST, SLOW
or VERYSLOW);
b) as a blitmode (therefore must not be BLACK or WHITE); and
c) as a pointer (therefore must not be GOLD, SILVER, EMPTY,
WOOD or STONE).
stats */
#define AMMOLIMIT 100
#define BIASLIMIT 100
#define STARTLIVES 100
#define LIVESLIMIT 200
#define MODELIMIT 100
#define MULTILIMIT 8 // don't set >8!
#define POWERLIMIT 6
#define SCORELIMIT 999999L
/* Field values...
These are objects. */
#define AFFIXER 0
#define AMMO 1
#define ARMOUR 2
#define BIAS 3
#define BOMB 4
#define BONUS 5
#define GROWER 6
#define ICE 7
#define LIFE 8
#define MISSILE 9
#define MULTIPLIER 10
#define NITRO 11
#define POWER 12
#define PROTECTOR 13
#define SLAYER 14
#define SWITCHER 15
#define HEALER 16
#define TONGUE 17
#define TREASURE 18
#define LASTOBJECT TREASURE
// These are `empty'.
#define EMPTY 19
#define SILVER 20
#define GOLD 21
#define FIRSTEMPTY EMPTY
#define LASTEMPTY GOLD
#define LASTKILLERFIRE LASTEMPTY
// Nothing special about the following...
#define TELEPORT (GOLD + 1)
#define FRAGMENT (GOLD + 2)
#define ORB (GOLD + 3)
#define FIRSTPROTECTOR (GOLD + 4)
#define LASTPROTECTOR (GOLD + 7)
/* Margins indicate `ranges' for:
l: letters.
n: orb bouncing, normal mode.
t: orb bouncing, tongue mode.
a: orb bouncing, armour mode.
f: fragment death.
k: killers. l n t a f k */
#define GREEN_C (GOLD + 8) // [ [
#define RED_O (GOLD + 9) // | |
#define BLUE_M (GOLD + 10) // | |
#define YELLOW_P (GOLD + 11) // | |
#define GREEN_L (GOLD + 12) // | |
#define RED_E (GOLD + 13) // | |
#define BLUE_T (GOLD + 14) // | |
#define YELLOW_E (GOLD + 15) // ] |
#define SKULL (GOLD + 16) // |
#define SLIME (GOLD + 17) // [ | [
#define STONE (GOLD + 18) // [ [ | | |
#define KILLER (GOLD + 19) // ] | | | |
#define WOOD (GOLD + 20) // | ] ] |
#define FIRSTTAIL (GOLD + 21) // | |
#define LASTTAIL (GOLD + 24) // ] ]
#define FIRSTLETTER GREEN_C
#define FIRSTNONE STONE
#define FIRSTTONGUE STONE
#define FIRSTARMOUR SLIME
#define FIRSTFRAGDEATH FIRSTLETTER
#define FIRSTKILLER SLIME
#define LASTLETTER YELLOW_E
#define LASTNONE LASTTAIL
#define LASTTONGUE KILLER
#define LASTARMOUR KILLER
#define LASTFRAGDEATH WOOD
#define LASTKILLER LASTTAIL
#define LETTERS (LASTLETTER - FIRSTLETTER)
// These are never part of the field[][] or board[][][] arrays.
#define ORBTONGUE (LASTTAIL + 1)
#define ORBARMOUR (LASTTAIL + 2)
#define FIRSTFIRE (LASTTAIL + 3)
#define LASTFIRE (LASTTAIL + 6)
#define FIRSTMISSILE (LASTTAIL + 7)
#define LASTMISSILE (LASTTAIL + 10)
#define START (LASTTAIL + 11)
#define MUSIC (LASTTAIL + 12)
#define CLOCK (LASTTAIL + 13)
#define STICKY (LASTTAIL + 14)
#define FX (LASTTAIL + 15)
#define ZERO (LASTTAIL + 16)
#define ONE (ZERO + 1)
#define TWO (ZERO + 2)
#define HEAD (ZERO + 10)
#define GREENHEADUP HEAD
#define REDHEADUP (HEAD + 1)
#define BLUEHEADUP (HEAD + 2)
#define YELLOWHEADUP (HEAD + 3)
#define FIRSTHEAD GREENHEADUP
#define LASTHEAD YELLOWHEADUP
#define GREENHEADDOWN (HEAD + 4)
#define REDHEADDOWN (HEAD + 5)
#define BLUEHEADDOWN (HEAD + 6)
#define YELLOWHEADDOWN (HEAD + 7)
#define GREENHEADLEFT (HEAD + 8)
#define REDHEADLEFT (HEAD + 9)
#define BLUEHEADLEFT (HEAD + 10)
#define YELLOWHEADLEFT (HEAD + 11)
#define GREENHEADRIGHT (HEAD + 12)
#define REDHEADRIGHT (HEAD + 13)
#define BLUEHEADRIGHT (HEAD + 14)
#define YELLOWHEADRIGHT (HEAD + 15)
#define GREENMODEUP (HEAD + 16)
#define REDMODEUP (HEAD + 17)
#define BLUEMODEUP (HEAD + 18)
#define YELLOWMODEUP (HEAD + 19)
#define GREENMODEDOWN (HEAD + 20)
#define REDMODEDOWN (HEAD + 21)
#define BLUEMODEDOWN (HEAD + 22)
#define YELLOWMODEDOWN (HEAD + 23)
#define GREENMODELEFT (HEAD + 24)
#define REDMODELEFT (HEAD + 25)
#define BLUEMODELEFT (HEAD + 26)
#define YELLOWMODELEFT (HEAD + 27)
#define GREENMODERIGHT (HEAD + 28)
#define REDMODERIGHT (HEAD + 29)
#define BLUEMODERIGHT (HEAD + 30)
#define YELLOWMODERIGHT (HEAD + 31)
#define ANYTHING FX
#define ARRAYSIZE YELLOWMODERIGHT // Must be <= 127!
// These have no imagery.
#define TEMPSILVER (ARRAYSIZE + 1)
#define TEMPWOOD TEMPSILVER
#define TEMPSLIME TEMPSILVER
#define TEMPGOLD (ARRAYSIZE + 2)
#define WASSILVER (ARRAYSIZE + 3)
#define NOSQUARE (ARRAYSIZE + 4)
// game status
#define GAMEOVER 0
#define PLAYGAME 1
#define FIELDEDIT 2
#define TITLESCRE